<?php
include($_SERVER["DOCUMENT_ROOT"] . "/fonctions_globales.php");

function entete($mysqli, $titre = "", $css="") {
    if (isset($_SESSION['id'])) {
        $derniere_visite = get_data_in_db($mysqli, "gens", "user_id", $_SESSION['id'], "user_lastvisit");
    }
    main_body($mysqli, $titre, "bandeau;forum".$css, "", true);
    ?>
    <div id="bandeau">
        <div>
            <ul class="menu_band menu_forum"><li><a href="/forum" class="bordure_gauche">Accueil</a></li><?php if (!empty($_SESSION['login'])) { ?><li><a href="forum.php?filtre=non_lus">Sujets récents</a></li><li><a href="forum.php?filtre=suivis">Sujets suivis</a></li><li><a href="forum.php?filtre=mes_sujets">Tous mes sujets</a></li><?php } ?><li><a href="forum.php?filtre=sans_reponse">Sujets sans réponse</a></li><!-- //!A <li><a href="#">F.A.Q.</a></li>-->
            </ul>
            <div id="recherche"><form action='recherche.php' method='post' style="display:inline; margin:0px; padding:0px;">
                    <input type="text" name="recherche" id="champ_recherche" placeholder="Recherche" />
                    <input type="submit" value="" id="bouton_recherche" /></form>
            </div>
        </div>
    </div>
    <div id='background_corps'> </div><!-- Div contenant simplement la couleur du corps, qui vient se glisser sous le motif de bulle
                                                                    (le vrai corp se glisse au-dessus, pour être cliquable). -->
    <div id="corps">
        <div id="contenus">
            <div id="banniere"> <!-- même id que pour le profil - est-ce un problème ??? -->
                <?php if (!empty($_SESSION['login'])) echo "<p id='visite'>Dernière visite : " . datouille($derniere_visite, true) . "</p>"; ?>
                <h3>Bienvenue sur le forum de POST HUMAN W.A.R</h3>
            </div>
            <?php
        }

        /** Affiche le tableau des forums (utilisé par index et forums, pour les sous-forum). Si $ss_forum est à true, cherche les sous-forum ($cat servant à ce moment d'identifiant du forum mère),
         * sinon cherche tous les forums principaux, par catégorie et par ordre. */
        function display_forums($mysqli, $cat, $ss_forum) { //TODO utiliser les requetes préparées pour tout ce qui est appelé dans la boucle (et notamment les "get_line_numbers" et display_dernier_post())
            $cat = get_num($cat);
            $query = "SELECT * FROM forums WHERE forum_parent='0' ORDER BY cat_id, forum_order";
            if ($ss_forum)
                $query = "SELECT * FROM forums WHERE forum_parent='$cat' ORDER BY forum_order";
            //echo $query;
            $forums = mysqli_query_with_error($mysqli, $query);
            if ($forums->num_rows == 0)
                return;
            ?>
            <ul id="entete_forum">
                <li class="grand"><span>Forum</span></li>
                <li class="petit">Sujets</li>
                <li class="petit">Messages</li>
                <li class="moyen"><span>Dernier </span></li>
            </ul> 
            <div class="ombre"> <?php
                $categories = mysqli_query_with_error($mysqli, "SELECT * FROM forum_categories ORDER BY cat_id");
                $categ_actu = Array();
                while ($ligne = $forums->fetch_assoc()) {
                    $bordure = "bordure";

                    if (!isset($categ_actu['cat_id']) || $ligne['cat_id'] != $categ_actu['cat_id']) { //Nouvelle catégorie. Fonctionnement simple pour minimiser la ressource, 
                        $categ_actu = $categories->fetch_assoc(); // néanmoins si une catégorie est vide ou qu'un forum est d'un catégorie inexistante, cela provoquera un décalage.
                        echo "<h4 class='ombre'>" . get_data_propre_sortie_db($categ_actu['cat_title']) . "</h4>";
                        $bordure = ""; //Permet de ne pas afficher de bordure de transition au-dessus de la ligne (puisqu'elle est sous le bandeau d'une catégorie)
                    }
                    // echo $bordure;
                    $idf = $ligne['forum_id'];
                    if ($ligne['auth_view'] == '2' && empty($_SESSION['login'])) {
                        continue;
                    } else if ($ligne['auth_view'] == '2' && @$_SESSION['grad'] != "admin") { //Si le forum est caché et qu'on est pas admin, on vérifie qu'on est habilité.
                        $result2 = mysqli_query_with_error($mysqli, "SELECT forum_id FROM forum_private WHERE forum_id ='$idf' AND user_id='" . get_num($_SESSION['id']) . "' LIMIT 1");
                        if ($result2->num_rows == 0) {
                            continue;
                        }
                    }
                    $icone = "lu";
                    if ($ligne['forum_status'] == '1') {
                        $icone = "verrouille";
                    } elseif (isset($_SESSION['new_topics'])) {
                        foreach ($_SESSION['new_topics'] as $forum_id) {
                            if ($forum_id == $idf) {
                                $icone = "nonlu";
                                break;
                            }
                        }
                    }
                    $dpost = mysqli_query_with_error($mysqli, "SELECT * FROM forum_posts WHERE forum_id = $idf ORDER BY post_time DESC LIMIT 1")->fetch_assoc();
                    $datp = datouille($dpost['post_time'], true);
                    $autor = $dpost['post_username'];
                    if ($dpost['poster_id'] != "0") {
                        $autor = "<a href='/perso/profil.php?id={$dpost['poster_id']}'  class='auteur'>" . get_data_in_db($mysqli, "gens", "user_id", $dpost['poster_id'], "username") . "</a>";
                    }
                    ?>
                    <div class="ligne <?php echo "$icone $bordure"; ?>">
                        <a href="forum.php?id=<?php echo get_data_propre_sortie_db($ligne['forum_id']); ?>"><div class="grand">
                                <h5><?php echo get_data_propre_sortie_db($ligne['forum_name']); ?></h5>
                                <p class="description"><?php echo get_data_propre_sortie_db($ligne['forum_desc']); ?></p>
                            </div></a>
                        <div class="petit"><p><?php echo get_line_numbers($mysqli, "forum_topics", "forum_id", $idf); ?></p></div>
                        <div class="petit"><p><?php echo get_line_numbers($mysqli, "forum_posts", "forum_id", $idf); ?></p></div>
                        <div class="moyen"><p> <?php
                                if ($dpost['topic_id'] != NULL) {
                                    echo "<a href='topic.php?id={$dpost['topic_id']}&page=derniere' class='maj'>" . get_data_in_db($mysqli, "forum_topics", "topic_id", $dpost['topic_id'], "topic_title") . " </a><br/>
								par $autor<br/><span class='date'>" . datouille($dpost['post_time'], true) . "</span>"; //TODO instaurer "aujourd'hui" dans la date.
                                } else {
                                    echo "<br/> <br/> <br/> ";
                                }
                                ?> </p> </div>
                    </div>
                    <?php
                }
                ?>
            </div>
            <?php
        }

        /** Affiche le tableau des forums (utilisé par index et forums, pour les sous-forum). Si $ss_forum est à true, cherche les sous-forum ($cat servant à ce moment d'identifiant du forum mère),
         * sinon cherche tous les forums principaux, par catégorie et par ordre. */
        function display_forum_ind($mysqli, $frm, $page = 1, $requete = "", $texte_requete_vide = "<p>Il n\'y a aucun sujet sur ce forum pour le moment.</p><p>Soyez le premier à poster !</p>") { //TODO utiliser les requetes préparées pour tout ce qui est appelé dans la boucle (et notamment les "get_line_numbers" et display_dernier_post())
            $frm = get_num($frm);

            //Pagination - Initialisation
            $nb_message_par_page = 20; //TODO remettre 10 ?
            if ($requete != "") {
                $retour_total = mysqli_query_with_error($mysqli, $requete);
            } else {
                $retour_total = mysqli_query_with_error($mysqli, "SELECT * FROM forum_topics WHERE forum_id=" . $frm);
            }
            $total = $retour_total->num_rows;

            $nombreDePages = ceil($total / $nb_message_par_page);
            $pageActuelle = intval($page);
            if ($pageActuelle > $nombreDePages) {
                $pageActuelle = $nombreDePages;
            }

            $premiereEntree = ($pageActuelle - 1) * $nb_message_par_page;


            if ($frm != -1) {
                $query = "SELECT * FROM forums WHERE forum_id='" . $frm . "' ORDER BY cat_id, forum_order";

                $forum = mysqli_query_with_error($mysqli, $query);
                $ligne = $forum->fetch_assoc();
                if ($ligne['auth_view'] == '2' && empty($_SESSION['login'])) {
                    echo 'Vous n\'avez pas l\'autorisation de voir ce forum';
                    return;
                } elseif ($ligne['auth_view'] == '2' && @$_SESSION['grad'] != "admin") { //Si le forum est caché et qu'on est pas admin, on vérifie qu'on est habilité.
                    $result2 = mysqli_query_with_error($mysqli, "SELECT forum_id FROM forum_private WHERE forum_id ='$frm' AND user_id='" . get_num($_SESSION['id']) . "' LIMIT 1");
                    if ($result2->num_rows == 0) {
                        echo 'Vous n\'avez pas l\'autorisation de voir ce forum';
                        return;
                    }
                }
                ?>
                <p class="btn ombre btn_ecrire">
                    <a href='post.php?frum=<?php echo $frm ?>'>Nouveau sujet</a>
                </p>
                <h4 class="ombre titre-individuel"><?php echo $ligne['forum_name'] ?></h4>
                <?php
            }
            ?>
            <div class="ombre clear">

                <ul id="entete_forum" class="entete_sous_forum"  >
                    <li class="sujet"><span>Sujet</span></li>
                    <li class="reponses milieu" >Réponses</li>
                    <li class="auteur milieu" >Auteur</li>
                    <li class="vues milieu" >Vues</li>
                    <li class="msg"><span>Derniers messages</span></li>
                </ul>
            </div>

            <div class="ombre">                
                <?php
                if ($total == 0) {
                    echo '<div class="ligne" style="text-align:center;">' . $texte_requete_vide . '</div>';
                } else {
                    if ($frm != -1) {
                        $query = "SELECT * FROM forum_topics WHERE forum_id='" . $frm . "' ORDER BY topic_type DESC, topic_time DESC LIMIT " . $premiereEntree . "," . $nb_message_par_page;
                    } else {
                        $query = $requete . " LIMIT " . $premiereEntree . "," . $nb_message_par_page;
                    }

                    $topics = mysqli_query_with_error($mysqli, $query);
                    if ($topics->num_rows == 0) {
                        return;
                    }
                    $bordure = "";
                    while ($ligne = $topics->fetch_assoc()) {
                        // var_dump($ligne);
                        $idt = $ligne['topic_id'];
                        if ($ligne['topic_type'] == 1) {
                            $icone = "important";
                        } else {
                            $icone = "lu";
                        }
                        if (isset($_SESSION['new_topics']) && isset($_SESSION['new_topics']['topic_' . $ligne['topic_id']])) {
                            if ($ligne['topic_type'] == 1) {
                                $icone = "nonlu-important";
                            } else {
                                $icone = "nonlu";
                            }
                        }

                        if ($ligne['topic_status'] == '1') {
                            $icone = "verrouille";
                        }
                        $is_deplac = "";
                        if ($ligne['topic_moved_id'] != '0') {
                            $ligne = get_line_in_db($mysqli, "forum_topics", "topic_id", $ligne['topic_moved_id']);
                            $is_deplac = "[Déplacé] ";
                        }
                        if ($ligne['topic_sondage'] != "") {
                            $is_deplac = $is_deplac . "[Sondage] ";
                        }

                        $autor = "<a href='/perso/profil.php?id=" . $ligne['topic_poster'] . "'  class='auteur'>" . get_data_in_db($mysqli, "gens", "user_id", $ligne['topic_poster'], "username") . "</a>";
                        ?>

                        <div class="ligne <?php echo "$icone $bordure"; ?>">
                            <div class="sujet">
                                <h5><a href="topic.php?id=<?php echo get_data_propre_sortie_db($ligne['topic_id']); ?>"><?php echo $is_deplac . get_data_propre_sortie_db($ligne['topic_title']); ?></a></h5>
                                <p class="description"><?php echo get_data_propre_sortie_db($ligne['topic_sub_title']); ?></p>
                                <?php
                                //Pagination topic
                                $nb_post_par_page = 10;
                                $retour_total = mysqli_query_with_error($mysqli, "SELECT COUNT(*) AS total FROM forum_posts WHERE topic_id=" . $ligne['topic_id']);
                                $donnees_total = $retour_total->fetch_assoc();
                                $total = $donnees_total['total'];

                                $nombreDePages = ceil($total / $nb_post_par_page);
                                $max_display = 4; //on affiche maximum 4 liens vers les pages
                                switch ($nombreDePages) {
                                    case ($nombreDePages == 1):
                                        break;
                                    case ($nombreDePages <= $max_display):
                                        echo '<p class="numero">Aller à la page : ';
                                        for ($i = 1; $i <= $nombreDePages; $i++) {
                                            echo '<a href="topic.php?id=' . $ligne['topic_id'] . '&page=' . $i . '">' . $i . '</a>';
                                            if ($i < $nombreDePages) {
                                                echo ', ';
                                            }
                                        }
                                        break;
                                    default :
                                        echo '<p class="numero">Aller à la page : ';
                                        echo '<a href="topic.php?id=' . $ligne['topic_id'] . '&page=1">1</a>, ';
                                        echo '<a href="topic.php?id=' . $ligne['topic_id'] . '&page=2">2</a>, ';
                                        echo '... , ';
                                        echo '<a href="topic.php?id=' . $ligne['topic_id'] . '&page=' . ($nombreDePages - 1) . '">' . ($nombreDePages - 1) . '</a>, ';
                                        echo '<a href="topic.php?id=' . $ligne['topic_id'] . '&page=' . ($nombreDePages) . '">' . ($nombreDePages) . '</a>';
                                        break;
                                }
                                ?>

                            </div>
                            <div class="reponses milieu">
                                <?php
                                $query = "SELECT COUNT(*) FROM forum_posts WHERE topic_id=" . $idt;
                                list($nb_post) = mysqli_query_with_error($mysqli, $query)->fetch_array();
                                ?>
                                <p><?php echo ($nb_post - 1); ?></p>
                            </div>
                            <div class="auteur milieu">
                                <p><?php echo $autor ?></p>
                            </div>
                            <div class="vues milieu">
                                <p><?php echo $ligne['topic_views'] ?></p>
                            </div>
                            <div class="msg">
                                <p class="description">
                                    <?php
                                    $dpost = mysqli_query_with_error($mysqli, "SELECT * FROM forum_posts WHERE topic_id = " . $idt . " ORDER BY post_time DESC LIMIT 1")->fetch_assoc();
                                    $datp = datouille($dpost['post_time'], true);
                                    $autor = $dpost['post_username'];
                                    if ($dpost['poster_id'] != "0") {
                                        $autor = get_data_in_db($mysqli, "gens", "user_id", $dpost['poster_id'], "username");
                                        ?>
                                        par <a href="/perso/profil.php?id=<?php echo $dpost['poster_id'] ?>" class="auteur"><?php echo get_data_propre_sortie_db($autor) ?></a> <a href="topic.php?id=<?php echo $ligne['topic_id'] ?>&page=<?php echo $nombreDePages ?>#<?php echo $dpost['post_id'] ?>" class="fleche"></a><br/>
                                        <span class="date"><?php echo $datp ?></span>
                                        <?php
                                    }
                                    ?>
                                </p>
                            </div>
                        </div>





                        <?php
                        $bordure = "bordure";
                    }
                }
                ?>
            </div>
            <?php
            pagination_bas('forum.php?id=' . $frm, '&page=', $nombreDePages, $pageActuelle);
        }

        function delete_sondage($mysqli, $id_topic) {
            $id_topic = get_num($id_topic);
            mysqli_multi_query_with_error($mysqli, "DELETE FROM forum_sondage_result WHERE topic_id='$id_topic';
	DELETE FROM forum_sondage_voters WHERE topic_id='$id_topic'; UPDATE forum_topics SET topic_sondage=NULL WHERE topic_id='$id_topic'");
        }

//traite des smileys
        function traitSmiley($mysqli, $texte) {
            $resulty = mysqli_query_with_error($mysqli, "SELECT * FROM forum_smilies ORDER BY smilies_id DESC");
            while ($lign = $resulty->fetch_assoc()) {
                $texte = str_replace($lign['code'], "<img src='/forum/images/smiles/{$lign['smile_url']}'>", $texte);
            }
            return $texte;
        }

        function verifbalise($ouverture, $fermeture, $texte) {
            return (sizeof(explode($ouverture, $texte)) == sizeof(explode($fermeture, $texte)));
        }

//traite du bbcode
        function traite_BBcode($texte) {
            if (!verifbalise("[b]", "[/b]", $texte) || !verifbalise("[i]", "[/i]", $texte) || !verifbalise("[u]", "[/u]", $texte) ||
                    !verifbalise("[quote", "[/quote]", $texte) || !verifbalise("[img]", "[/img]", $texte) || !verifbalise("[url", "[/url]", $texte) ||
                    !verifbalise("[color=", "[/color]", $texte) || !verifbalise("[size=", "[/size]", $texte))
                return $texte;

            $texte = remplace_BBcode_simple("b", $texte);
            $texte = remplace_BBcode_simple("i", $texte);
            $texte = remplace_BBcode_simple("u", $texte);

            $texte = str_replace("[img]", "<img src=\"", $texte);
            $texte = str_replace("[/img]", "\">", $texte);

            $texte = traite_BBcode_complexe($texte);
            $texte = str_replace("[/url]", "</a>", $texte);
            $texte = str_replace("[/size]", "</span>", $texte);
            $texte = str_replace("[/color]", "</span>", $texte);
            $texte = traite_BBcode_quote($texte);


            return $texte;
        }

//Affiche le tableau des posts (use dans topics et post
        function display_posts($mysqli, $tab_post, $idtopic, $pageActuelle, $recherche_mot = null, $is_moderateur = false) { //TODO utiliser les requetes préparées pour tout ce qui est appelé dans la boucle.
            $nb_current = 0;
            while ($ligne = $tab_post->fetch_assoc()) { //affichage du tableau de posts TODO : ceci est-il vraiment utile ou ne fait-il pas doublon avec les vérif des page elle-même ? Et surtout, pourquoi dans une boucle ? Ah oui pour la recherche... On a pas plus économique ?
                if (get_data_in_db($mysqli, "forums", "forum_id", $ligne['forum_id'], "auth_view") == '2' && @$_SESSION['grad'] != "admin") {
                    $result_perm = mysqli_query_with_error($mysqli, "SELECT forum_id FROM forum_private WHERE forum_id ='{$ligne['forum_id']}' AND user_id='{$_SESSION['id']}' LIMIT 1");
                    if ($result_perm->num_rows == 0) {
                        continue;
                    }
                }
                $current_post_id = get_num($ligne['post_id']);
                echo '<a name="' . $ligne['post_id'] . '"></a>';
                echo '<div class="separator"></div>';

                echo '<div class="post">';
                echo '<div class="profil">';


                $blaze = get_data_propre_sortie_db($ligne['post_username']);
                if ($ligne['poster_id'] == "0" || $ligne['poster_id'] == "-1") {
                    echo '<p class="pseudo"><a>' . $blaze . '</a></p>';
                } else {//recherche sur l'auteur
                    $autor = get_line_in_db($mysqli, "gens", "user_id", $ligne['poster_id']);
                    $sign = get_data_propre_sortie_db($autor['user_sig']);
                    //$datautor = datouille($autor['user_regdate'], false);
                    $titre = get_data_in_db($mysqli, "titres", "titre_id", $autor['user_titre'], "titre_name");
                    $username = get_data_propre_sortie_db($autor['username']);
                    //$user_loc = get_data_propre_sortie_db($autor['user_from']);
                    //$sign = nl2br(get_data_propre_sortie_db($autor['user_sig']));
                    $faction = get_faction(get_data_propre_sortie_db($autor['faction']));
                    $niveau = get_data_propre_sortie_db($autor['game_level']);
                    $nb_territoire = get_data_propre_sortie_db($autor['nb_territoires']);

                    $avatar = get_data_propre_sortie_db($autor['user_avatar']);
                    $couleur = get_data_propre_sortie_db($autor['couleur']);
                    list($nb_post) = mysqli_query_with_error($mysqli, "SELECT COUNT(*) FROM forum_posts WHERE poster_id=" . $ligne['poster_id'])->fetch_array();
                    //affichage des infos sur l'auteur
                    echo '<p class="pseudo"><a href="/perso/profil.php?id=' . $autor['user_id'] . '">' . $username . '</a></p>';
                    echo '<p class="statut">' . $titre . '</p>';
                    echo get_avatar($avatar, $couleur) . '
							<p class="informations">                                                        
								' . $faction . ' <br/>
								' . $nb_post . ' message' . ((get_num($nb_post) > 1) ? 's' : '') . ' <br/>
								Niveau ' . $niveau . ' <br/>
								' . $nb_territoire . ' Territoire' . ((get_num($nb_territoire) > 1) ? 's' : '') . '
							</p>';
                    //<div class='petit_gab'>$titre<br>" . get_avatar($autor['user_avatar'], $autor['couleur']) . "<br>
                    //Inscrit le: $datautor<br>Messages: {$autor['user_posts']}<br>Localisation: $user_loc</div></div>";
                }
                echo '</div>';
                //Le message lui-même
                $datmess = datouille($ligne['post_time'], true);
                $posto = nl2br($ligne['post_text']);
                if ($ligne['enable_bbcode'] == '1') {
                    $posto = traite_BBcode($posto);
                }
                if ($ligne['enable_smilies'] == '1') {
                    $posto = traitSmiley($mysqli, $posto);
                }
                echo "<div class='message'>";
                if (isset($_SESSION['id'])){
                    $verif_idef = "idefix=" . md5(session_id() . $_SESSION['id']) . "&";
                }


                if ($recherche_mot == null) {
                    echo '<p class="infos_msg">Posté ' . $datmess;
                    if ($ligne['post_edit_count'] > 0) {
                        $datem = datouille($ligne['post_edit_time'], true);
                        echo '- Edité ' . $ligne['post_edit_count'] . ' fois - Dernière édition ' . $datem;
                    }
                    echo '</p>';
                    echo $posto;
                } else {


                    $forum = get_line_in_db($mysqli, 'forums', 'forum_id', $ligne['forum_id']);
                    $nom_cat = get_data_in_db($mysqli, 'forum_categories', 'cat_id', $forum['cat_id'], 'cat_title');
                    $nom_topic = get_data_in_db($mysqli, 'forum_topics', 'topic_id', $ligne['topic_id'], 'topic_title');
                    echo '<p class="infos_msg">Issu de ' . $nom_cat . ' ::: <a href = "forum.php?id=' . $ligne['forum_id'] . '">' . $forum['forum_name'] . '</a> ::: <a href = "topic.php?id=' . $ligne['topic_id'] . '">' . $nom_topic . '</a> - Posté ' . $datmess;
                    echo '</p>';
                    if ($recherche_mot != "") {
                        $tmots = explode(' ', $recherche_mot);
                        for ($i = 0; $i < sizeof($tmots); $i++) {
                            $posto = str_ireplace($tmots[$i], "<span class=\"motscles\">{$tmots[$i]}</span>", $posto);
                        }
                    }
                    echo $posto;
                }
                if ($sign!=""){
                echo '<hr/>';
                echo '<p class="signature">' . $sign . '</p>';
                }
                ?>
                <ul class="actions">
                    <?php
                    if (isset($_SESSION['id'])){
                    if ($recherche_mot == null) {

                        if (isset($_SESSION['id']) && ($is_moderateur || ($ligne['poster_id'] == $_SESSION['id'] && $ligne['poster_id'] != 0))) {
                            ?>
                            <li class="btn ombre"><a href='post.php?topic=<?php echo $idtopic; ?>&pos=<?php echo $current_post_id ?>&page=<?php echo $pageActuelle; ?>'>Editer</a></li>                                

                            <?php
                        }
                        ?>
                        <?php
                        if ($is_moderateur) {
                            ?>
                            <li class="btn ombre bleu"><a href='topic.php?<?php echo $verif_idef; ?>id=<?php echo $idtopic; ?>&mod=supr&idp=<?php echo $current_post_id; ?>&page=<?php echo $pageActuelle ?>' onclick='return confirm("Veux-tu vraiment atomiser ce post innocent?");'>Supprimer</a></li>
                            <li class="btn ombre bleu"><a href='topic.php?<?php echo $verif_idef; ?>id=<?php echo $idtopic; ?>&mod=cut&idp=<?php echo $current_post_id; ?>&ptime=<?php echo $ligne['post_time'] ?>&page=<?php echo $pageActuelle; ?>' onclick='return confirm("Veux-tu vraiment découper ce topic innocent?");'>Supprimer ce qui suit</a></li>
                            <?php
                        }
                        ?>
                        <li class="btn ombre droit"><a href='topic.php?id=<?php echo $idtopic; ?>&page=derniere&citation=<?php echo $current_post_id; ?>&poster=<?php echo urlencode($username); ?>#reponse_rapide'>Citer</a></li>
                        <?php
                    }
                    ?>
                    <li class="btn ombre bleu droit"><a href="javascript:afficher_popup('popup/signalement.php?post_id=<?php echo $current_post_id; ?>');">Signaler un abus</a></li>
                    <?php                    
                        }
                        ?>
                </ul>
                <?php
                echo '</div>';
                echo '</div>';
            }
            return $nb_current;
        }

//Utilisé dans display_forums() et dans forum.php TODO ne sert plus ds display_forums(), donc à ré-intégrer ds forum.php et supprimer ici.
        function display_dernier_post($mysqli, $type_id, $id_truc) {
            $type_id = get_alphanum($type_id);
            $id_truc = get_num($id_truc);
            $result = mysqli_query_with_error($mysqli, "SELECT * FROM forum_posts WHERE $type_id = $id_truc ORDER BY post_time DESC LIMIT 1");
            $dpost = $result->fetch_assoc();
            $datp = datouille($dpost['post_time'], true);

            $autor = $dpost['post_username'];
            if ($dpost['poster_id'] != "0")
                $autor = "<a href='/perso/profil.php?id={$dpost['poster_id']}'>" . get_data_in_db($mysqli, "gens", "user_id", $dpost['poster_id'], "username") . "</a>";

            if ($dpost['topic_id'] != NULL)
                return " $datp par<br>$autor <a href='topic.php?id={$dpost['topic_id']}&page=d#{$dpost['post_id']}'>
				<img src='images/icon_pmess.gif' border='0'></a>";
            else
                return "";
        }

//---------------------------- Série de fonctions utilisées par traite_BBcode()--------------------------------//

        function remplace_BBcode_complexe($balise_deb, $balise_fin, $remplace_deb, $remplace_fin, $texte) {
            while (TRUE) {
                $tuti = explode($balise_deb, $texte, 2);
                if (!@$tuti[1])
                    break;
                $tuti2 = explode($balise_fin, $tuti[1], 2);
                $tuti2epu = str_replace("http://", "", $tuti2[0]); //Permet, dans le cas des balises d'url, de ne pas doubler le http://
                $zebre = $remplace_deb . $tuti2epu . $remplace_fin;
                $texte = $tuti[0] . $zebre . $tuti2[1];
            }
            return $texte;
        }

        function traite_BBcode_complexe($texte) {
            $texte = remplace_BBcode_complexe("[size=", "]", "<span style='font-size: ", "px;'>", $texte);
            $texte = remplace_BBcode_complexe("[color=", "]", "<span style='color: ", ";'>", $texte);
            //$texte = remplace_BBcode_complexe("[quote=\"", "\"]", "<div class='quote'><b>", " a dit:</b><br><br>", $texte);
            $texte = remplace_BBcode_complexe("[url=", "]", "<a href='http://", "' target='_blank'>", $texte);
            $texte = traite_BBcode_quote($texte);

            return $texte;
        }

        function traite_BBcode_quote($texte) {

            $texte_nouveau = str_replace('[quote]', '<p class="auteur_citation">Citation:</p><blockquote>', $texte);
            $texte_nouveau = str_replace('[/quote]', '</blockquote>', $texte_nouveau);
            $texte_nouveau = remplace_BBcode_complexe('[quote="', '"]', '<p class="auteur_citation">', ' a dit :</p><blockquote>', $texte_nouveau);

            $html = str_get_html($texte_nouveau);
            traite_niveau_quote($html, 'pair');
            $texte_nouveau = $html;
            return $texte_nouveau;
        }

        function traite_niveau_quote($element, $niveau) {
            //echo $element.'<br/><br/>';

            if ($niveau == "pair") {
                $niveau_inf = "impair";
            } else {
                $niveau_inf = "pair";
            }
            foreach ($element->find('blockquote') as $elt) {
                if ($elt->class == "") {
                    $elt->class = $niveau;
                    traite_niveau_quote($elt, $niveau_inf);
                }
            }
            //echo '<hr/>';
        }

//traite rapidement les balises simples ([b], [i], etc)
        function remplace_BBcode_simple($lettre, $texte) {
            $texte = str_replace("[$lettre]", "<$lettre>", $texte);
            $texte = str_replace("[/$lettre]", "</$lettre>", $texte);
            return $texte;
        }

        function javascript_BBcode() {
            ?> <script language="Javascript">
            function csmil(code) {
                document.formul.message.value = document.formul.message.value + code;
            }

            function writebb(bob, addon) {
                var balise_deb = "[" + bob + addon + "]";
                var balise_fin = "[/" + bob + "]";
                if (window.document.all) { //Sous internet explorer
                    var my_select = document.selection.createRange().text;
                    if (my_select)
                        document.selection.createRange().text = balise_deb + my_select + balise_fin;
                    else
                        document.formul.message.value += balise_deb + balise_fin;

                }
                else { //Firefox et Chrome
                    var messy = window.document.formul.message;
                    var s1 = (messy.value).substring(0, messy.selectionStart);
                    var s2 = (messy.value).substring(messy.selectionStart, messy.selectionEnd)
                    var s3 = (messy.value).substring(messy.selectionEnd, messy.textLength);
                    window.document.formul.message.value = s1 + balise_deb + s2 + balise_fin + s3;
                }
            }

            function verifbalise(ouverture, fermeture, texte) {
                return ((texte.split(ouverture)).length == (texte.split(fermeture)).length);
            }

            var formul_envoie = false;
            function verifbb(texte) {
                if (document.formul.login && document.formul.login.value == "") {
                    alert("Merci d'entrer un pseudo");
                    return false;
                }
                if (!verifbalise("[b]", "[/b]", texte) || !verifbalise("[i]", "[/i]", texte) || !verifbalise("[u]", "[/u]", texte) ||
                        !verifbalise("[quote", "[/quote]", texte) || !verifbalise("[img]", "[/img]", texte) || !verifbalise("[url", "[/url]", texte) ||
                        !verifbalise("[color=", "[/color]", texte) || !verifbalise("[size=", "[/size]", texte)) {
                    alert("Certaines balises BBcode sont mal ouvertes ou mal refermées");
                    return false;
                }
                formul_envoie = true;
                return true;
            }

            //                    window.onbeforeunload = function() {
            //                        if (!formul_envoie && document.formul.message.value.length > 10)
            //                            return "Si vous quittez la page, le message en cours d'écriture sera perdu. Voulez-vous vraiment quitter ?";
            //                    }
            </script> <?php
        }

        function display_post_message($dbbc, $dsmil, $messa, $mysqli,$maxlength="") {
            //echo "<input type='checkbox' name='ncod' value='1' onmouseover=\"document.formul.indic.value='Désactive le BBCode dans ce message (déconseillé)';\"";
            //if ($dbbc == '0')
            //    echo" checked";
            //echo ">Désactiver le BBCode &nbsp;&nbsp;<input type='checkbox' name='nsmil' value='1' onmouseover=\"document.formul.indic.value='Désactive les smileys dans ce message';\"";
            //if ($dsmil == '0')
            //    echo" checked";
            //echo "> Désactiver les Smileys<br><br>
            ?>
            <script>

                function afficher_selecteur(id) {
                    if (document.getElementById(id).style.display === 'block') {
                        document.getElementById(id).style.display = 'none';
                        $('#div_' + id).attr("style", "");
                        $('#detail_' + id).attr("style", "");

                    } else {
                        document.getElementById(id).style.display = 'block';
                        document.getElementById('div_' + id).style.display = 'none';
                        document.getElementById('detail_' + id).style.display = 'none';
                    }
                }


            </script>
            <ul id="outils">
                <li>                    
                    <input type="submit" value="" onclick="afficher_selecteur('taille_selecteur');
                            return false;" class="bbouton" id="taille" />
                    <div id="div_taille_selecteur"></div>
                    <p id="detail_taille_selecteur" class="detail ombre">Taille</p>
                    <ul id="taille_selecteur" class="typo ombre">
                        <?php
                        for ($i = 6; $i <= 26; $i = $i + 2) {
                            echo '<li id="taille' . $i . '">' . $i . '</li>';
                            echo '<script>';
                            echo '$(\'#taille' . $i . '\').mouseup(function(){
                                    writebb(\'size\',\'=' . $i . '\');
                                    afficher_selecteur(\'taille_selecteur\');
                                    });';
                            echo '</script>';
                        }
                        ?>  
                    </ul>
                </li>
                <li>
                    <input type="submit" value="" on onclick="writebb('b', '');
                            return false;" class="bbouton" id="gras">

                    <div></div>
                    <p class="detail ombre" >Gras</p>
                </li>
                <li>
                    <input type="submit" onclick="writebb('i', '');
                            return false;" value="" class="bbouton" id="italique">
                    <div></div>
                    <p class="detail ombre">Italique</p>
                </li>
                <li>
                    <input type="submit" value="" onclick="writebb('u', '');
                            return false;" class="bbouton" id="soulignage">
                    <div></div>
                    <p class="detail ombre">Souligner</p>
                </li>
                <li>
                    <input type="submit" value="" onclick="afficher_selecteur('couleur_selecteur');
                            return false;" class="bbouton" id="surlignage">
                    <div id="div_couleur_selecteur"></div>
                    <p id="detail_couleur_selecteur" class="detail ombre">Couleur</p>
                    <ul id="couleur_selecteur" class="couleur ombre">
                        <?php
                        $couleurs = array('#ff9900', '#000000', '#ffff00', '#ffffff', '#00ff00', '#9900ff', '#00ffff', '#ff00ff', '#0000ff', '#ff0000');
                        for ($i = 0; $i < count($couleurs); $i++) {
                            $class = "";
//                                if ($couleurs[$i]=="#ffffff"){
//                                    $class=' class="active"';
//                                }
                            echo '<li id="couleur' . $i . '" style="background-color:' . $couleurs[$i] . '"' . $class . '></li>';
                            echo '<script>';
                            echo '$(\'#couleur' . $i . '\').mouseup(function(){
                                    writebb(\'color\',\'=' . $couleurs[$i] . '\');
                                        afficher_selecteur(\'couleur_selecteur\');
                                    });';
                            echo '</script>';
                        }
                        ?>
                    </ul>
                </li>
                <li>
                    <input type="submit" onclick="writebb('quote', '');
                            return false;" value="" class="bbouton" id="citation">
                    <div></div>
                    <p class="detail ombre">Citation</p>
                </li>
                <li>
                    <input type="submit" onclick="writebb('url', '=votreURL');
                            return false;" value="" class="bbouton" id="liens">
                    <div></div>
                    <p class="detail ombre">Lien</p>
                </li>
                <li>
                    <input type="submit" onclick="writebb('img', '');
                            return false;" value="" class="bbouton" id="images">
                    <div></div>
                    <p class="detail ombre">Image</p>
                </li>
                <!-- <li>
                   <input type="submit" onclick="afficher_selecteur('smiley_selecteur');
                            return false;" value="" class="bbouton" id="smiley">
                    <div id="div_smiley_selecteur"></div>
                    <p id="detail_smiley_selecteur" class="detail ombre">Smiley</p>
                    <ul id="smiley_selecteur" class="smiley ombre">
                        <?php
//                        $result = mysqli_query_with_error($mysqli, "SELECT * FROM forum_smilies ORDER BY smilies_id");
//                        $i = 0;
//                        while ($ligne = $result->fetch_assoc()) {
//                            echo '<li id="smiley' . $i . '"><img src="/forum/images/smiles/' . $ligne['smile_url'] . '" /></li>';
//                            echo '<script>';
//                            echo '$(\'#smiley' . $i . '\').mouseup(function(){
//                                    
//                                    csmil(\'' . $ligne['code'] . '\');                                        
//                                        afficher_selecteur(\'smiley_selecteur\');
//                                    });';
//                            echo '</script>';
//                            $i++;
//                        }
                        ?>                            
                    </ul>
                </li>-->
            </ul>
            <?php
                if($maxlength!=""){
                    $maxlength='maxlength="'.$maxlength.'"';
                }
            ?>
            <textarea id='wysiwyg' <?php echo $maxlength ?> name='message'><?php echo $messa ?></textarea>
            <?php
//                 echo "<div style='margin-left:20px; float:left; text-align:center; padding-top:20px; margin-top : 60px;'>
//	<br>Smileys:<br><div style='margin-left:20px; width:250px; height:280px;
//	border: 2px ridge #FFFF00; overflow:auto; padding:5px;'>";
//
//                
//                while ($ligne = $result->fetch_assoc()) {
//                    echo "<div style='float:left; margin:7px;'><a href=\"javascript:csmil('{$ligne['code']}')\">
//	<img src='/forum/images/smiles/{$ligne['smile_url']}' border='0'></a></div> ";
//                }
//                echo"</div></div>";
        }
        